package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.StudentBean;

import java.util.ArrayList;

public interface IStudentService {
    /**
     * 显示所有学生
     * @return 学生对象 {id，姓名，性别，班级名称，房间地址，联系电话，入住时间，头像}
     */
    ArrayList<StudentBean> showAllStudents();

    /**
     * 学生入住
     * @param newStudent 学生对象{姓名，性别，班级id，房间id，联系电话，头像}
     */
    void studentIn(StudentBean newStudent);

    /**
     * 学生退房
     * @param stuId 学生id
     */
    void studentOut(Integer stuId);

    /**
     * 学生换房
     * @param stuId 学生id
     * @param newRoomId 新房间id
     * 说明：根据学生id，修改房间外键
     */
    void studentChange(Integer stuId, Integer newRoomId);

    /**
     * 根据学生id，查找学生，同时查询房间地址，班级名称（联表）
     * @param stuId 学生id
     * @return 学生对象  学生信息{学生id，学生姓名，性别，房间地址，班级名称，入住时间，联系电话，头像}
     */
    StudentBean studentById(Integer stuId);

    /**
     * 动态条件分页查询学生，同时查询房间地址，班级名称（联表）
     * @param pageNum 页码
     * @param stuName 学生姓名
     * @param className 班级名
     * @param roomAddress 房间地址
     * @return 学生集合 学生信息{学生id，学生姓名，性别，房间地址，班级名称，入住时间，联系电话，头像}
     */
    IPage<StudentBean> cutPageByCondition(Integer pageNum, String stuName, String className, String roomAddress);
}
